﻿using System;
using System.Threading.Tasks;

namespace Website.Games.Scary_Bodka;

public class Scary_Bodka
{
	public readonly BlazorConsole Console = new();

	public async Task Run()
	{
		int health = 100, money = 500, day = 1, cupsOfCoffee = 0, dayC = 0;
		while ((health > 0) & (dayC < 40))
		{
			await Console.WriteLine();
            await Console.WriteLine($"День {day}. Здоровье равно {health}, {money} рублей и {cupsOfCoffee} чашек кофе");
            await Console.WriteLine($"C# изучался {dayC} из 40 необходимых дней");
            await Console.WriteLine("1. Сесть учить C#");
            await Console.WriteLine("2. Поехать на работу (-70 рублей + 1000 рублей)");
            await Console.WriteLine("3. Купить чашку кофе (-450 рублей)");
            await Console.WriteLine("4. Выпить чашку кофе (-1 чашка кофе)");
            await Console.WriteLine("5. Ничего не делать");

			await Console.Write("Чем займёмся сегодня? Введи число: ");
            
            int option = Convert.ToInt32(await Console.ReadLine(true));
                
			switch (option)
			{
				case (1):
					day += 1;
					dayC += 1;
					health -= 10;
					break;
				case (2):
					day += 1;
					health -= 10;
					if (money >= 70)
						money = money - 70 + 1000;
					else
						await Console.WriteLine("Денег нет, но вы держитесь! День прошёл в прокрастинации");
					break;
				case (3):
					if (money >= 450)
					{
						money = money - 450;
						cupsOfCoffee += 1;
					}
					else
					{
						await Console.WriteLine("Денег нет, но вы держитесь! Выберите другой вариант.");
					}
					break;
				case (4):
					if ((cupsOfCoffee > 0) & (health <= 80))
					{
						health += 20;
						cupsOfCoffee -= 1;
					}
					else if (cupsOfCoffee == 0)
					{
						await Console.WriteLine("Чашек кофе больше нет. Выберите другое действие. ");
					}
					else
					{
						health = 100;
						cupsOfCoffee -= 1;
					}
					break;
				case (5):
					day += 1;
					health -= 10;
					await Console.WriteLine("День прошёл в прокрастинации");
					break;
				default:
					day += 1;
					health -= 10;
					await Console.WriteLine("День прошёл в прокрастинации");
					break;
			}
		}
            
        if (health <= 0)
        {
            await Console.WriteLine();
            await Console.WriteLine("Жаль Ваську. Бодька сожрал его!");
        }
        else
        {
            await Console.WriteLine();
            await Console.WriteLine($"Васька — красавчик! Выучил C# за {day} и подружился с Бодькой! Теперь они друзья и открыли свою инди-студию \"Монтировка\"!");
        }
	}
}